/**
    抽象类
       => 含有抽象方法的类, 使用abstract修饰 
       => 抽象方法
             => 只有方法头，没有方法体的方法
             => 语法使用 abstract修饰
       => 不能实例化抽象类
       => 定义一个类继续抽象类，实现抽象方法
       abstract eat():void

 */
 abstract class Person{
    public abstract eat():void
    public say():void{
        console.log('人说话')
    }
 }

 class ChinesPerson extends Person{
    public eat():void{
        console.log('中国人吃东西')
    }
 }

const chinePerson:ChinesPerson = new ChinesPerson()
chinePerson.eat()
chinePerson.say()
 